Metastability detection and correction in analog to digital converter

ABSTRACT

A method of operating an analog to digital converter (ADC) comprises comparing an analog input signal to a reference signal, using a comparator, and generating a comparator output according to the comparison, storing the comparator output in at least one memory unit, monitoring the stored comparator output to determine whether a difference between the analog input signal and the reference signal is within a predetermined range, and detecting a metastability error upon determining that the difference between the analog input signal and the reference signal is within a predetermined range.

BACKGROUND

An analog-to-digital converter (ADC) is a device that converts an analoginput signal into a corresponding digital output signal. Typically, thisconversion is performed by comparing the analog input signal to one ormore reference voltages using one or more comparators. The results ofthese comparisons are then stored in memory units, such as latches orflip-flops. In most applications, the sampling of the input signal isperformed at regular time intervals to generate a sequence of digitalvalues representing the analog input signal.

FIG. 1 is a block diagram illustrating a simplified example of a one-bitADC 100. In this example, the analog input signal is converted intoone-bit digital samples at regular intervals defined by a clock signal.

Referring to FIG. 1, ADC 100 comprises a comparator 105 and a latch 110.Comparator 105 receives analog input signal V_(in) and compares it to areference voltages V_(ref). In some implementations, where analog inputsignal V_(in) is greater than or equal to reference voltage V_(ref),comparator 105 outputs a “1”, and where analog input signal V_(in) isless than reference voltage V_(ref), comparator 105 outputs a “0”. Latch110 stores the output of comparator 105 and outputs the stored value asa digital sample d₀. The output of comparator 105 is updated accordingto a clock signal clk.

In general, the bit resolution of ADC 100 can be increased by performingadditional comparisons between analog input signal V_(in) and otherreference voltages and storing the results of the comparisons inadditional latches. The additional comparisons can be performed inparallel using additional comparators, or they can be performedsequentially using the same or additional comparators. A simplifiedexample of a multi-bit ADC that performs comparisons in sequence isdescribed below with reference to FIG. 2.

FIG. 2 is a block diagram illustrating a simplified example of asuccessive approximation register (SAR) ADC 200. In this example, analoginput signal V_(in) is converted into (n+1)-bit digital samples byperforming “n+1” voltage comparisons at regular intervals defined by aclock signal clk.

Referring to FIG. 2, ADC 200 comprises a comparator 205, a SAR 210, anda digital to analog converter (DAC) 215. Comparator 205 receives analoginput signal V_(in) and compares it to a reference signal V_(ref) outputby DAC 215. Where analog input signal V_(in) is greater than or equal toreference voltage V_(ref), comparator 205 outputs a “1”, and whereanalog input signal V_(in) is less than reference voltage V_(ref),comparator 205 outputs a “0”. SAR 210 stores and outputs data d₀, d₁, .. . , d_(n) using a corresponding plurality of latches, and it updatesthis data based on the output of comparator 205. For explanationpurposes, it will be assumed that data d₀ represents a most significantbit of a digital sample, data d_(n) represents a least significant bit,and so on. DAC 215 converts the data d₀, d₁, . . . , d_(n) intoreference voltage V_(ref), so reference voltage V_(ref) is updated withdata d₀, d₁, . . . , d_(n). The updating of data d₀, d₁, . . . , d_(n)and reference voltage V_(ref) are performed according to clock signalelk, which controls the updating of the output of comparator 205.

During conventional switching operation of ADC 200, which is merely oneof several potential implementations of an SAR ADC, data d₀, d₁, . . . ,d_(n) is updated by an iterative procedure in which comparator 205performs successive comparisons between analog input signal V_(in) andreference voltage V_(ref) according to clock signal elk. In theiterative procedure, data d₀, d₁, . . . , d_(n) is initialized so thatall bits are “0”. At the beginning of each iteration, data d₁ isselected for updating, with “i” set to zero in the first iteration. Datad_(i) is changed to “1” and DAC 215 generates reference voltage V_(ref)with a magnitude corresponding to data d₀, d₁, . . . , d_(n). Forinstance, where n=3, a first iteration changes data d₀, d₁, . . . ,d_(n) to “1000” and DAC 215 generates reference voltage V_(ref) with amagnitude corresponding to “1000”. If analog input signal V_(in) isgreater than or equal to reference voltage V_(ref), the value of datad_(i) remains at “1”. Otherwise, it is changed to “0”. Next, theprocedure determines whether all bits of data d₀, d₁, . . . , d_(n) havebeen updated. If so, data d₀, d₁, . . . , d_(n) is fetched from thelatches of SAR 210. Otherwise, “i” is incremented and a next iterationis performed.

In the above and other ADCs, the time needed to compare two analogvoltages and store a resulting binary output value in a latch may dependon a difference between the two input voltages. The smaller thedifference, the longer it takes for the output value to be generated andstored. A longer delay can potentially lead to metastability errors,causing the ADC to output erroneous results. For instance, in ADC 200 ofFIG. 2, if the analog input signal V_(in) is relatively close to theinitial value of reference voltage V_(ref), a relatively long time maybe required to update data d₀. If this time is longer than the period ofclock signal clk, data d₀ will not be properly updated until a nextcomparison is performed, which can lead to a metastability error. Anexample of such a metastability error is described below with referenceto FIGS. 3A and 3B.

FIG. 3A is a circuit diagram illustrating an example of a 4-bit SAR ADC300. ADC 300 represents one possible implementation of ADC 200 of FIG.2. FIG. 3B is a timing diagram illustrating the operation of ADC 300 andthe generation of a metastability error during the operation.

Referring to FIGS. 3A and 3B, ADC 300 comprises substantially the samefeatures as ADC 200, except that SAR 210 is implemented by a combinationof a demultiplexer (DMUX) and a plurality of latches corresponding todata d₀, d₁, d₂, d₃, respectively. The DMUX operates responsive to a twobit control signal CTRL[0:1] to transfer the output of comparator 205 toone of four latches in the form of one of DMUX output signals D₀, D₁,D₂, D₃. For explanation purposes, it is assumed that analog input signalV_(in) has a magnitude corresponding to a digital value “0111”, asillustrated by a dotted horizontal line in FIG. 3B.

ADC 300 converts the analog input signal V_(in) into 4-bit data d₀, d₁,d₂, d₃ by performing four sequential comparisons every 1 ns at times t=0ns, 1 ns, 2 ns, 3 ns, and the result is fetched at t=4 ns. Becauseanalog input signal V_(in) has a value that is relatively close to theinitial value of reference voltage V_(ref), a first comparison andstoring can take more than 1 ns. In the example of FIG. 3B, it takes 2.5ns. After 1 ns, ADC 300 stores data d₀ as “1”, so a second comparisonproduces a “0”. After 2 ns, ADC 300 stores data [d₀, d₁] as “10”, so athird comparison produces a “0”. After 2.5 ns, the result of the firstcomparison is finally written to the corresponding latch, so ADC 300stores data d₀ as “0” at that time, as indicated by a dotted circle.After 3 ns, ADC 300 performs a fourth comparison, producing a “1”. Afinal result is “0001” instead of “0111”, which means the errormagnitude is “0110”, which is almost a half-scale error for a 4-bit ADC.In other words, as illustrated by this example, metastability errors canproduce relatively large conversion errors in an ADC.

In general, an ADC can be designed with reduced probability ofmetastability errors if the required conversion speed is relatively low.For instance, an ADC can be designed so that metastability errors occurwith probability of 10⁻⁸. In measurement instrumentation applications,such as real-time oscilloscopes, however, the required metastabilityerror rate may be extremely low (e.g., 10⁻²⁰), and the required samplingspeed may be extremely high (e.g., 10's or 100's GS/s). In thesecircumstances, the metastability error rate can be reduced byinterleaving “M” ADCs, each operating at lower sampling speed (f_(s)/M),but this can lead to an unacceptably large interleaving factor M.Moreover, some ADC architectures are more prone to metastability errorsthan others, i.e., errors occur more frequently for a given samplingspeed. This is one reason why, for example, pipeline ADCs have been apreferred choice over an SAR ADCs, despite a generally superior powerefficiency of SAR ADCs. This is also a reason why, for instance,asynchronous SAR ADCs have been faster than synchronous SAR ADCs, asthere is no need to allot a large number of time constants to acomparator in an asynchronous SAR.

In view of the above and other shortcomings of conventional ADCs, thereis a general need for ADCs having improved metastability detection andcorrection mechanisms.

SUMMARY

In a representative embodiment, a method of operating an ADC comprisescomparing an analog input signal to a reference signal, using acomparator, and generating a comparator output according to thecomparison, storing the comparator output in at least one memory unit,monitoring the stored comparator output to determine whether adifference between the analog input signal and the reference signal iswithin a predetermined range, and detecting a metastability error upondetermining that the difference between the analog input signal and thereference signal is within a predetermined range.

In certain related embodiments, monitoring the stored comparator outputcomprises sampling the stored comparator output at a first time and asecond time to generate respective first and second samples of thestored comparator output, and comparing the first and second samples toeach other to determine whether the stored comparator output changedbetween the first time and the second time. In such embodiments, themetastability error may be detected upon determining that the first andsecond samples have different values. In addition, sampling the storedcomparator output at the first time and the second time may comprisetransferring the stored comparator output from the memory unit to afirst flip-flop at the first time, and transferring the storedcomparator output from the memory unit to a second flip-flop and fromthe first flip-flop to a third flip-flop, both at the second time,wherein the second time occurs at the end of a current ADC samplingperiod

In certain related embodiments, the method further comprises (a)sampling the stored comparator output at an i-th time to produce an n-thsample, and storing the n-th sample in a p-th memory unit, (b) samplingthe stored comparator output at a j-th time after the i-th time toproduce an m-th sample, and storing the m-th sample in a q-th memoryunit, (c) sampling the p-th memory unit to produce an (n+1)-th sample,and storing the (n+1)-th sample in a (p+1)-th memory unit, (d) samplingthe q-th memory unit to produce an (m+1)-th sample, and storing the(m+1)-th sample in a (q+1)-th memory unit, and (e) comparing the(n+1)-th sample to the (m+1)-th sample and detecting the metastabilityerror based on the comparison. The operations (c) and (d) may berepeated at least one time with increased values of in, n, p, and q ineach repetition, prior to performing (e) with the increased values of mand n.

In certain related embodiments, storing the comparator output in atleast one memory unit comprises storing the comparator output in a firstmemory unit and a complementary value of the comparator output in asecond memory unit, and monitoring the stored comparator output todetermine whether a difference between the analog input signal and thereference signal is within the predetermined range comprises samplingthe first and second memory units storing the comparator output toproduce first and second samples, and comparing the first and secondsamples. In such embodiments, the metastability error may be detectedupon determining that the first and second samples have the same value.

In another representative embodiment, an ADC comprises a comparatorconfigured to compare an analog input signal to a reference signal toproduce a comparator output, a storage unit comprising at least onememory unit configured to store the comparison result, a monitoring unitconfigured to monitor the stored comparator output to determine whethera difference between the analog input signal and the reference signal iswithin a predetermined range, and an error detection unit configured todetect a metastability error upon determining that the differencebetween the analog input signal and the reference signal is within apredetermined range.

In certain related embodiments, the monitoring unit monitors the storedcomparator output by sampling the stored comparator output at a firsttime and a second time to generate respective first and second samplesof the stored comparator output, and comparing the first and secondsamples to each other to determine whether the stored comparator outputchanged between the first time and the second time. In such embodiments,the error detection unit may detect the metastability error as aconsequence of the monitoring unit determining that the first and secondsamples have different values.

In certain embodiments, the storage unit stores the comparator output ina first memory unit and stores a complementary value of the comparisonresult in a second memory unit, and the monitoring unit samples thefirst and second memory units storing the comparator output to producefirst and second samples, and compares the first and second samples. Insuch embodiments, the error detection unit detects the metastabilityerror as a consequence of the monitoring unit determining that the firstand second samples have the same value.

In certain related embodiments, the ADC further comprises a correctionunit configured to correct the metastability error by generating adigital output signal representing the analog input signal, wherein thedigital output signal comprises stored comparison results obtainedbefore the metastability error was detected followed by multiple bitswith values determined by the detection of the metastability.

BRIEF DESCRIPTION OF THE DRAWINGS

The described embodiments are best understood from the followingdetailed description when read with the accompanying drawing figures.Wherever applicable and practical, like reference numerals refer to likeelements.

FIG. 1 is a block diagram illustrating a simplified example of a one-bitADC.

FIG. 2 is a block diagram illustrating a simplified example of an SARADC.

FIG. 3A is a circuit diagram illustrating an example of a 4-bit SAR ADC.

FIG. 3B is a timing diagram illustrating the operation of the ADC ofFIG. 3A and the generation of a metastability error during theoperation.

FIG. 4 is a block diagram of an ADC comprising a metastability detectoraccording to a representative embodiment.

FIG. 5 is a block diagram of an ADC comprising a metastability detectoraccording to another representative embodiment.

FIG. 6 is a flowchart illustrating a method of operating an ADCaccording to a representative embodiment.

FIG. 7 is a circuit diagram illustrating a portion of an ADC comprisinga metastability detector according to a representative embodiment.

FIG. 8 is a flowchart illustrating a method of operating the ADC of FIG.7 according to a representative embodiment.

FIG. 9 is a circuit diagram illustrating a portion of an ADC comprisinga metastability detector according to a representative embodiment.

FIG. 10 is a flowchart illustrating a method of operating the ADC ofFIG. 9 according to a representative embodiment.

DETAILED DESCRIPTION

In the following detailed description, for purposes of explanation andnot limitation, representative embodiments disclosing specific detailsare set forth in order to provide a thorough understanding of thepresent teachings. However, it will be apparent to one having ordinaryskill in the art having had the benefit of the present disclosure thatother embodiments according to the present teachings that depart fromthe specific details disclosed herein remain within the scope of theappended claims. Moreover, descriptions of well-known apparatuses andmethods may be omitted so as to not obscure the description of theexample embodiments. Such methods and apparatuses are clearly within thescope of the present teachings.

The terminology used herein is for purposes of describing particularembodiments only, and is not intended to be limiting. The defined termsare in addition to the technical and scientific meanings of the definedterms as commonly understood and accepted in the technical field of thepresent teachings. As used in the specification and appended claims, theterms ‘a’, ‘an’ and ‘the’ include both singular and plural referents,unless the context clearly dictates otherwise. Thus, for example, ‘adevice’ includes one device and plural devices.

The described embodiments relate generally to techniques andtechnologies that can be used to detect and/or correct metastabilityerrors in an ADC. As illustrated by the example of FIGS. 3A and 3B, ametastability error can occur where a comparison and the storage ofresulting data takes longer than expected. The comparison is typicallyslow where a difference between comparator inputs is relatively small.Consequently, a metastability error can be detected and corrected byidentifying a comparison in the conversion process that was slower thanexpected, keeping all comparison results obtained before themetastability occurred, and forcing remaining bits to 100 . . . 0. In asynchronous SAR ADC, this can be achieved by sampling values of latchesused to store a comparator output at two different times: at a firsttime where the decision is expected to be completed (i.e., before achange in the latch value would cause an error in the conversion), andat second time after the conversion process is completed. The twosampled values are compared, and if they are different, a metastabilityerror is detected and output data can be determined based on thebit-position at which the metastability error occurred. This samplingcan be performed by flip-flops clocked by appropriately delayed clocks,as illustrated in FIG. 7, for example. In addition, because flip-flopsare also regenerative circuits, and may suffer from the metastabilityproblem as well, the values of the flip-flops can be further resampledcertain number of times to arbitrarily reduce the probability of failingto detect a metastability error. The resampling gives more time forpositive-feedback circuits inside the flip-flops to regenerate. Thisresampling may introduce additional delay time, but such a delay may bewithin a range that can be tolerated by many applications, such asmeasurement instruments.

In some SAR ADC architectures, both a comparator output and itscomplementary value are stored in latches. Typically, the latches areboth initialized to the same value, and then one of them is flipped. Inthis situation, a metastability error can be detected by sampling thevalues of both latches at a certain time after the comparator is strobed(i.e., before the change in the latch value would cause an error in theconversion), as illustrated in FIG. 9, for example. If the two sampledvalue are the same, the metastability error is detected. To furtherreduce the probability of metastable detector being metastable, thevalues sampled in the flip-flops can be further resampled.

In addition to providing improved accuracy, the use of metastabilitydetection and correction as described herein may also allow an increasein the speed of synchronous SAR ADCs. For example, to achieve ametastability rate of 10⁻²⁰ using conventional techniques, around 45time constants may need to be allocated for comparator regeneration.However, if the metastability detection and correction are used, about 7time constants may suffice. Moreover, although several embodiments aredescribed below in relation to synchronous SAR ADCs, the describedconcepts can be generalized for any ADC architecture.

FIG. 4 is a block diagram of an ADC 400 comprising a metastabilitydetector according to a representative embodiment.

Referring to FIG. 4, ADC 400 comprises a comparator 405, at least onelatch 410, and a metastability detection/correction unit 415. ADC 400 isconfigured to convert an analog input signal V_(in) into an (n+1)-bitdigital output signal d[0:n].

During typical operation of ADC 400, comparator 405 receives analoginput signal V_(in) and at least one reference voltage V_(ref). Itcompares analog input signal V_(in) with the at least one referencevoltage V_(ref) and produces a comparator output according to adifference between the analog input signal V_(in) and the at least onereference voltage V_(ref). In general, the comparator output maycomprise one or more signals. For instance, some comparators may producetwo signals that are complementary to each other. The timing of thecomparator output may depend on the difference between the analog inputsignal V_(in) and the at least one reference voltage V_(ref). Forinstance, where the difference is relatively small, the comparatoroutput may not reflect a result of the comparison until a relativelylong time has elapsed. The at least one latch 410 receives and storesthe comparator output, and metastability detection/correction unit 415monitors data stored in the at least one latch 410 to determine whetherthe difference is within a predetermined (e.g., small) range.Thereafter, metastability detection/correction unit 415 detects ametastability error based on the monitoring of the data stored in thelatch.

In certain embodiments, this monitoring is performed by sampling thelatch at a first time and then at a subsequent second time to determinewhether the stored data changes between those two times. The first timemay correspond to a time when the stored comparator output is expectedto be valid under normal operating conditions, and the second time maycorrespond to a time where the conversion of analog input signal V_(in)to digital output signal d[0:n] is to be completed. A change in thelatch data between the first and second times indicates that thecomparator output required a relatively long time to be updated, whichin turn indicates that the difference between analog input signal V_(in)and the reference voltage V_(ref) is relatively small. Accordingly, thechange can be used to detect a metastability error. In certain otherembodiments, the monitoring is performed by sampling first and secondlatches configured to store a value of the comparator output and acomplement of the value of the comparator output, respectively, and thendetermining whether the respective values sampled from the two latchesare the same. Where the sampled values are the same, it indicates thatthe comparator output has not been updated to reflect the differencebetween the analog input signal V_(in) and the reference voltageV_(ref), which in turn indicates that the difference between analoginput signal V_(in) and the reference voltage V_(ref) is relativelysmall. Accordingly, the difference in values can be used to detect ametastability error. A number of potential implementations of the atleast one latch 410 and metastability detection/correction unit 415 willbecome apparent from the description of FIGS. 6 through 10 below.

FIG. 5 is a block diagram of an ADC 500 comprising a metastabilitydetector according to another representative embodiment.

Referring to FIG. 5, ADC 500 comprises a comparator 505, an SAR 510, adigital to analog converter 515, and a metastabilitydetection/correction unit 520. ADC 500 is configured to convert ananalog input signal V_(in) into an (n+1)-bit digital output signald[0:n].

ADC 500 functions similar to ADC 200 described above, except thatmetastability detection/correction unit 520 samples comparator outputsstored in latches of SAR 510 at different times to detect the presenceof a metastability error, and it outputs a corrected digital outputsignal d[0:n] upon detecting the metastability error. In addition, ADC500 performs comparisons in synchronization with a clock signal clk. Thesampling can be performed at first and second times, similar tometastability detection/correction unit 420 of FIG. 4. A number ofpotential implementations of SAR 510 and metastabilitydetection/correction unit 520 will become apparent from the descriptionof FIGS. 6 through 10 below.

FIG. 6 is a flowchart illustrating a method 600 of operating an ADCaccording to a representative embodiment. For explanation purposes, itwill be assumed that the method of FIG. 6 is performed by ADC 500,although the method is not restricted to this or any other specificimplementation. In the description that follows, example method featureswill be indicated by parentheses (SXXX) to distinguish them from exampleapparatus features.

Referring to FIG. 6, the method begins by comparing an analog inputsignal to a reference signal, using a comparator, and generating acomparator output according to a difference between the analog inputsignal and the reference signal (S605). This may comprise, for instance,a comparison between analog input signal V_(in) and reference voltageV_(ref) as in FIG. 5. The comparator typically has one or two outputs,with the two outputs typically corresponding to complementary values.Before the comparison is performed, the comparator is typically resetand corresponding latches for storing the comparator output are set to adefault value (e.g., “1”). Then, the comparator is strobed to initiatethe comparison. After the comparator is strobed, there is generally adelay before the comparator output will reflect a result of thecomparison. As indicated above, the magnitude of the delay depends onthe magnitude of the difference between the analog input signal and thereference signal. For example, where the difference is smaller, thedelay may be relatively large.

Next, the method stores the comparator output in at least one memoryunit, such as a latch (S610). For instance, a single bit may be storedin a single latch, or two bits may be stored in two latches. Next, themethod monitors the at least one latch to determine whether thedifference between the analog input signal and the reference signal iswithin a predetermined range (S615). The predetermined range isgenerally a small range that corresponds to a metastability error. Themonitoring of the at least one latch can take different forms indifferent embodiments. For instance, as described below in relation toFIGS. 7 and 8, the monitoring may comprise sampling a single latch attwo different times to determine whether the value of the comparatoroutput stored in the latch changes between those times, indicating thatthe difference between the analog input signal and the reference signalis relatively small. Alternatively, as described below in relation toFIGS. 9 and 10, the monitoring may comprise sampling two latches todetermine whether they have been updated to reflect the differencebetween the analog input signal and the reference signal. If not, itindicates that the difference between the analog input signal and thereference signal is relatively small. In addition, as described below,the sampled data can be resampled an arbitrary number of times toimprove the accuracy of metastability error detection and correction.Finally, the method detects a metastability error based on themonitoring of the latch data (S620).

In an SAR ADC such as that illustrated in FIG. 5, operations S605through S615 can be repeated for each of the different bit values ofdigital output signal d[0:n]. During the course of these repetitions, ifa metastability error is detected, digital output signal d[0:n] can begenerated by retaining all bit values determined prior to detection ofthe error, and setting the remaining bit values to a “1” followed by astring of trailing “0”s.

FIG. 7 is a circuit diagram illustrating a portion of an ADC comprisinga metastability detection/correction unit according to a representativeembodiment. For explanation purposes, and to provide an example context,it will be assumed that the portion shown in FIG. 7 forms part of ADC500 shown in FIG. 5. In particular, it will be assumed that the portioncomprises comparator 505, part of SAR 510, and part of metastabilitydetection/correction unit 520. The illustrated parts function to processa single bit (e.g., a first bit d₀) of digital output signal d[0:n].Other similar parts can be used to process other bits of the samedigital output signal.

Referring to FIG. 7, comparator 505 performs a comparison between analoginput signal V_(in) and reference voltage V_(ref), as described withreference to FIG. 5. Comparator 505 is first initialized, together withcorresponding latches, as indicated above. Then it is strobed, orupdated, at a time t₀ determined by clock signal clk. A comparatoroutput produced by comparator 505 is transmitted through a first logicgate G1 to a latch. The logic gate G1 is an AND gate and is operated aspart of a DMUX, similar to the DMUX illustrated in FIG. 3A. In a 1:4DMUX example, as in FIG. 3A, a DMUX control signal CTRL[0:1] has fourdifferent values to activate one of four different selection signalsSEL[0:3]. Where a particular selection signal SEL_(i) is activated, itcauses the comparator output to be converted to a DMUX output signalD_(i). At the same time, a clock signal elk and selection signal SEL_(i)are input to a second logic gate G2, which provides an output signal toa delay circuit ΔT.

An output of the latch is stored in a first flipflop FF1 at a first timet₁ defined by clock signal elk and a delay imposed by delay circuit ΔT.Thereafter, the output of the latch circuit is also stored in a secondflipflop FF2 at a second time t₂ defined by a final clock clk_final. Theperiod of the final clock clk_final corresponds to the time required toperform “n+1” comparisons in ADC 500 for the “n+1” bits of digitaloutput signal d[0:n]. Accordingly, clock signal elk passes through “n+1”cycles for each cycle of final clock clk_final. Also at second time t₂,the stored output of the latch is transferred from first flipflop FF1 toa fifth flipflop FF5. The data stored in second flipflop FF2 and fifthflipflop FF5 is then transferred in synchronization through additionalflipflops until the transferred data reaches an XOR gate.

Once the data reaches XOR gate, if it is the same in both of flipflopsFF4 and FF7, it indicates that no metastability error has occurred withrespect to the data. Accordingly, a correction signal assumes the value“0” to indicate that no metastability error correction is required.Otherwise, if the data is different in flipflops FF4 and FF7, itindicates that a metastability error has occurred with respect to thedata. This generally means that the value stored in the latch changedbetween first time t₁ and second time t₂, or that the value stored inone of the flipflops changed between data transfer. Where ametastability error is present, the correction signal assumes the value“1” to indicate that metastability error correction is required. Ingeneral, the probability of failing to detect or correct a metastabilityerror can be reduced arbitrarily by increasing the number of flipflopsin each of the respective flipflop chains shown in FIG. 7.

In response to the correction signal assuming the value “1”,metastability detection/correction unit 520 performs error correction byretaining all bit values of digital output signal d[0:n] that are moresignificant than the bit value where metastability occurred, and settingremaining bit values to a “1” followed by “0”s.

The conditions for detecting metastability, as described in relation toFIG. 7, can be formulated in an alternative manner, with certaingeneralizations, as follows. During each comparison, one output ofcomparator 505 is connected (through a demultiplexer) to the input ofone latch. Before the comparison, comparator 505 is reset and the valueof the latch is set to “1”, although the use of “1” is just an example,and a different polarity can be used in other implementations. Where thelatch is set to “1” before comparator 505 is strobed, the latch shouldbe designed such that it does not allow false transitions at its output.This means that, in a response to the comparator output, the latchoutput can either stay at “1” or completely change its value to “0” (ifthe latch was initially reset to “0”, it can only stay at ‘0’ orcompletely change its state to “1”). Partial transitions, where thelatch output goes from “1” to some voltage close to ‘0’ and then goesback to “1”, are not allowed. This can be achieved by embedding a simpleskewed inverter inside the latch, for instance. After comparator 505 isstrobed, three different scenarios may occur, depending on thedifference between input signal V_(in) and reference voltage V_(ref),referred to hereafter as V_(diff).

In a first scenario, V_(diff) is less than or equal to some smallvoltage V1, where 0<V1<LSB. In this scenario, V_(diff) is eithernegative or a very small positive voltage, so the output of comparator505 stays at zero (where it was previously reset) or it produces a verysmall pulse that is not going to change the value stored in the latch.Therefore, a “1” will be sampled both at the first time and the secondtime. Because both samples are equal, no metastability is detected andthe value stored in the latch is “1”.

In a second scenario, V_(diff) is between V1 and V2, where V1<V2<LSB. Inthis scenario, comparator 505 produces a narrow pulse at its output thatis going to reset the value of the latch, but the latch will be resetafter the first time its value is sampled. Therefore, the first samplewill be a “1” and the second sample will be a “0”. Consequently,metastability is detected.

In a third scenario, V_(diff) is greater than or equal to V2. In thisscenario, the output of comparator 505 is a wide pulse that will quicklyreset the value of the latch. Therefore, by the time the latch issampled the first time, it will already be a “0”. The second sample isalso a “0” and no metastability is detected. The value in the latch is“0”.

As indicated by the description of the above three scenarios, whereV_(diff) is such that 0<V1<V_(diff)<V2<LSB, metastability is detectedand a correction mechanism is activated.

FIG. 8 is a flowchart illustrating a method of operating an ADCcomprising the portion illustrated in FIG. 7 according to arepresentative embodiment. As indicated by the labeling in FIG. 8, thismethod represents one possible implementation of operation 615 of FIG.6.

Referring to FIG. 8, the method comprises sampling the stored comparatoroutput at a first time and a second time to generate respective firstand second samples of the stored comparator output (S805) and comparingthe first and second samples to each other to determine whether thestored comparator output changed between the first time and the secondtime (S810). These operations can be performed by operation of theflipflops and the XOR gate as illustrated in FIG. 7. Thereafter, ametastability error is detected upon determining that the storedcomparator output changed between the first time and the second time.

FIG. 9 is a circuit diagram illustrating a portion of an ADC comprisinga metastability detector according to a representative embodiment. Forexplanation purposes, and to provide an example context, it will beassumed that the portion shown in FIG. 9 forms part of ADC 500 shown inFIG. 5. In particular, it will be assumed that the portion comprisescomparator 505, part of SAR 510, and part of metastabilitydetection/correction unit 520. The illustrated parts function to processa single bit (e.g., a first bit d₀) of digital output signal d[0:n].Other similar parts can be used to process other bits of the samedigital output signal.

Referring to FIG. 9, first and second latches “Latch 1” and “Latch 2”are initialized or reset to the same value (e.g., “1”), and comparator505 is reset so that it outputs a predetermined value (e.g., “0”). Then,comparator 505 performs a comparison between analog input signal V_(in)and reference voltage V_(ref), as described with reference to FIG. 5.Comparator 505 is strobed, or updated, at a time to determined by clocksignal elk. A comparator output produced by comparator 505 istransmitted through a first logic gate G1 to first latch “Latch 1”, anda complement of the comparator output is transmitted through a secondlogic gate G2 to second latch “Latch 2”. First and second logic gates G1and G2 are AND gates and are operated as part of a demultiplexer inresponse to a selection signal SELi derived from a DMUX control signalsuch as that illustrated in FIG. 3A. Clock signal elk and selectionsignal SEL_(i) are input to a third logic gate G3, which provides anoutput signal to a delay circuit ΔT.

Output values of the first and second latches are stored in respectivefirst and second flipflops FF1 and FF2 at a first time t₁ defined byclock signal elk and a delay imposed by delay circuit ΔT. If first andsecond flipflops FF1 and FF2 store the same value after time t₁, itindicates that neither of the first and second latches changed itsvalue, which means that an updated value of the comparator output wasnot stored in the latches between t0 and t1, e.g. the comparison andstoring was too slow and therefore we can conclude that the differencebetween the analog input signal and the reference voltage was relativelysmall. Consequently, the inspection of first and second flipflops FF1and FF2 can be used to detect a metastability error in the ADC.

Subsequently, the outputs of first and second flipflops FF1 and FF2 aretransferred to third through fifth flipflops FF3 through FF5 and sixththrough eighth flipflops FF6 through FF8, respectively, at times definedby a final clock clk_final. The period of the final clock clk_finalcorresponds to the time required to perform “n+1” comparisons in ADC 500for the “n+1” bits of digital output signal d[0:n]. Accordingly, clocksignal elk passes through “n+1” cycles for each cycle of final clockclk_final. The data stored in first and second flipflops FF1 and FF2 istransferred in synchronization through the other flipflops until thetransferred data reaches an XNOR gate.

Once the data reaches XNOR gate, if different values are stored in fifthand eighth flipflops FF5 and FF8, it indicates that no metastabilityerror has occurred with respect to the data. Accordingly, a correctionsignal assumes the value “0” to indicate that no metastability errorcorrection is required. Otherwise, if the same values are stored infifth and eighth flip-flops FF5 and FF8, it indicates that ametastability error has occurred with respect to the data. Where ametastability error is present, the correction signal assumes the value“1” to indicate that metastability error correction is required. Ingeneral, the probability of failing to detect or correct a metastabilityerror can be reduced arbitrarily by increasing the number of flipflopsin each of the respective flipflop chains shown in FIG. 9.

In response to the correction signal assuming the value “1”,metastability detection/correction unit 520 performs error correction byretaining all bit values of digital output signal d[0:n] that are moresignificant than the bit value where metastability occurred, and settingremaining bit values to a “1” followed by “0”s.

The conditions for detecting metastability, as described in relation toFIG. 9, can be formulated in an alternative manner, with certaingeneralizations, as follows. During each comparison, one output ofcomparator 505 is connected (through a demultiplexer) to the input ofthe first latch, and the other output of comparator 505 is connected(through the demultiplexer) to the input of the second latch. Before thecomparison, comparator 505 is reset and the value of the latch is set to“1”, although the use of “1” is just an example, and a differentpolarity can be used in other implementations. Where the latch is set to“1” before comparator 505 is strobed, the latch should be designed suchthat it does not allow false transitions at its output. After comparator505 is strobed, three different scenarios may occur, depending on thedifference between input signal V_(in) and reference voltage V_(ref),referred to hereafter as V_(diff).

In a first scenario, V_(diff) is relatively small, between −Vx and +Vx(−Vx≦V_(diff)≦Vx, Vx<LSB). Because V_(diff) is relatively small, bothoutputs of comparator 505 stay at zero or produce only a narrow pulse atone of the comparator outputs. Whether there was no pulse at all or thepulse was narrow, this is not enough to change the value of the firstand second latches by the first time the values of those latches aresampled using flip-flops. Therefore, at the first time a “1” is sampledfrom both the first and the second latches. This means metastability isdetected.

In a second scenario, V_(diff) is larger than Vx, (Vin>Vx, Vx<LSB). Awide pulse is produced at a plus output of comparator 505 and the firstlatch is reset to “0”. Where the values of the latches are sampled atthe first time, a “0” is obtained from the first latch and a “1” isobtained from the second latch, and no metastability is detected.

In a third scenario. V_(diff) is smaller than −Vx (Vin<−Vx, Vx<LSB).This is similar to the second scenario, except the minus output ofcomparator 505 is activated and the second latch is reset. A “1” isobtained from the first latch and a “0” is obtained from the secondlatch and no metastability is detected.

As indicated by the description of the above three scenario, whereV_(diff) is such that −LSB<−Vx<V_(diff)≦Vx<LSB, metastability isdetected and a correction mechanism is activated.

FIG. 10 is a flowchart illustrating a method of operating the ADC ofFIG. 9 according to a representative embodiment. As indicated by thelabeling in FIG. 10, this method represents one possible implementationof operation 615 of FIG. 6

Referring to FIG. 10, the method comprises storing the comparator outputin a first latch and a complementary value of the comparator output in asecond latch (S1005), sampling the first and second latches storing thecomparator output to produce first and second samples (S1010), and thencomparing the first and second samples to determine whether a comparatoroutput corresponding to the difference between the analog input signaland the reference voltage was stored in the first and second latchesbefore the first time t₁ (S1015). These operations can be performed byoperation of the first and second latches, the flipflops, and the XNORgate as illustrated in FIG. 9. Thereafter, a metastability error isdetected upon determining that the first and second latches store thesame value, indicating that a comparator output corresponding to thedifference between the analog input signal and the reference voltage wasnot stored in the first and second latches before the first time t₁.

In the above embodiments, a metastability error is typically detectedwhere the absolute value of a comparator input signal (e.g., adifference between v_(in) and v_(ref)) is smaller than some value “m”.Therefore, the comparator can produce three different output values: 1,0 (or −1), and the metastable state. Effectively, this creates anadditional quantization level. If the size of the metastable region iscomparable to a least significant bit (LSB) size, this can be used toincrease the resolution of the ADC, for example, to get n+1 bits ofresolution with an n-bit ADC. A 1-bit resolution enhancement can beachieved, for instance, if _m=1/4LSB. A metastability rate in this caseis 50%.

As one example of this increased resolution, assume a 5-bit SAR ADC inwhich output bits are interpreted as 0 and 1 produces a result 10001,and metastability is detected at a second bit. Under thesecircumstances, a final output without resolution enhancement would be11000. With resolution enhancement it becomes 110001, by adding a 1 atthe end of the result. As another example of this increased resolution,assume a 5-bit SAR ADC in which output bits are interpreted as −1 and +1produces a result 01001, and metastability is detected at the third bit.Under these circumstances, a metastability flag is set to 1 and a result01100 is sent. An overall result is interpreted as −1+1000.

While representative embodiments are disclosed herein, one of ordinaryskill in the art appreciates that many variations that are in accordancewith the present teachings are possible and remain within the scope ofthe appended claim set. The invention therefore is not to be restrictedexcept within the scope of the appended claims.

1. A method of operating an analog to digital converter (ADC),comprising: comparing an analog input signal to a reference signal,using a comparator, and generating a comparator output according to thecomparison; storing the comparator output in at least one memory unit;monitoring the stored comparator output to determine whether adifference between the analog input signal and the reference signal iswithin a predetermined range; and detecting a metastability error upondetermining that the difference between the analog input signal and thereference signal is within a predetermined range.
 2. The method of claim1, wherein monitoring the stored comparator output comprises: samplingthe stored comparator output at a first time and a second time togenerate respective first and second samples of the stored comparatoroutput; and comparing the first and second samples to each other todetermine whether the stored comparator output changed between the firsttime and the second time.
 3. The method of claim 2, wherein themetastability error is detected upon determining that the first andsecond samples have different values.
 4. The method of claim 2, whereinsampling the stored comparator output at the first time and the secondtime comprises: transferring the stored comparator output from thememory unit to a first flip-flop at the first time; and transferring thestored comparator output from the memory unit to a second flip-flop andfrom the first flip-flop to a third flip-flop, both at the second time;wherein the second time occurs at the end of a current ADC samplingperiod.
 5. The method of claim 1, further comprising: (a) sampling thestored comparator output at an i-th time to produce an n-th sample, andstoring the n-th sample in a p-th memory unit; (b) sampling the storedcomparator output at a j-th time after the i-th time to produce an m-thsample, and storing the m-th sample in a q-th memory unit; (c) samplingthe p-th memory unit to produce an (n+1)-th sample, and storing the(n+1)-th sample in a (p+1)-th memory unit; (d) sampling the q-th memoryunit to produce an (m+1)-th sample, and storing the (m+1)-th sample in a(q+1)-th memory unit; and (e) comparing the (n+1)-th sample to the(m+1)-th sample and detecting the metastability error based on thecomparison.
 6. The method of claim 5, further comprising repeating (c)and (d) at least one time with increased values of m, n, p, and q ineach repetition, prior to performing (e) with the increased values of mand n.
 7. The method of claim 1, wherein storing the comparator outputin at least one memory unit comprises storing the comparator output in afirst memory unit and a complementary value of the comparator output ina second memory unit, and wherein monitoring the stored comparatoroutput to determine whether a difference between the analog input signaland the reference signal is within the predetermined range comprisessampling the first and second memory units storing the comparator outputto produce first and second samples, and comparing the first and secondsamples.
 8. The method of claim 7, wherein the metastability error isdetected upon determining that the first and second samples have thesame value.
 9. The method of claim 1, further comprising: (a) storingthe comparator output as an n-th sample in a p-th memory unit and acomplementary value of the comparator output as an m-th sample in anq-th memory unit; (b) sampling the p-th memory unit to produce an(n+1)-th sample, and storing the (n+1)-th sample in a (p+1)-th memoryunit; (c) sampling the q-th memory unit to produce an (m+1)-th sample,and storing the (m+1)-th sample in a (q+1)-th memory unit; and (d)comparing the (n+1)-th sample to the (m+1)-th sample and detecting themetastability error based on the comparison.
 10. The method of claim 9,further comprising repeating (b) and (c) at least one time withincreased values of m, n, p, and q in each repetition, prior toperforming (d) with the increased values of m and n.
 11. The method ofclaim 1, further comprising, upon detecting the metastability error,generating a digital output signal representing the analog input signal,wherein the digital output signal comprises stored comparison resultsobtained before the metastability error was detected followed bymultiple bits with values determined by the detection of themetastability.
 12. The method of claim 11, wherein the multiple bitscomprise a “1” followed by at least one trailing “0”.
 13. The method ofclaim 1, wherein the ADC is a synchronous successive approximationregister (SAR) ADC.
 14. The method of claim 1, wherein the memory unitis a latch.
 15. An analog to digital converter (ADC), comprising: acomparator configured to compare an analog input signal to a referencesignal to produce a comparator output; a storage unit comprising atleast one memory unit configured to store the comparison result; amonitoring unit configured to monitor the stored comparator output todetermine whether a difference between the analog input signal and thereference signal is within a predetermined range; and an error detectionunit configured to detect a metastability error upon determining thatthe difference between the analog input signal and the reference signalis within a predetermined range.
 16. The ADC of claim 15, wherein themonitoring unit monitors the stored comparator output by sampling thestored comparator output at a first time and a second time to generaterespective first and second samples of the stored comparator output, andcomparing the first and second samples to each other to determinewhether the stored comparator output changed between the first time andthe second time.
 17. The ADC of claim 16, wherein the error detectionunit detects the metastability error as a consequence of the monitoringunit determining that the first and second samples have differentvalues.
 18. The ADC of claim 15, wherein the storage unit stores thecomparator output in a first memory unit and stores a complementaryvalue of the comparison result in a second memory unit, and themonitoring unit samples the first and second memory units storing thecomparator output to produce first and second samples, and compares thefirst and second samples.
 19. The ADC of claim 18, wherein the errordetection unit detects the metastability error as a consequence of themonitoring unit determining that the first and second samples have thesame value.
 20. The ADC of claim 15, further comprising a correctionunit configured to correct the metastability error by generating adigital output signal representing the analog input signal, wherein thedigital output signal comprises stored comparison results obtainedbefore the metastability error was detected followed by multiple bitswith values determined by the detection of the metastability.